package org.stvd.repository.admin;

import java.util.List;
import java.util.Map;

import org.stvd.entities.admin.Dictionary;
import org.stvd.repository.base.BaseDao;

/**
 * @Title: DictionaryDao	
 * @Description: 系统字典-Repository接口类
 * @author houzx
 * @date 2020年2月7日
 */
public interface DictionaryDao extends BaseDao<Dictionary> {

    /**
     * @Description: 更新字典类别
     * @param oldType
     * @param newType
     */
    public void updateDictionaryType(String oldType, String newType);
    
    /**
     * @Description: 更新字典父级ID
     * @param oldId 
     * @param newId
     */
    public void updateDictionaryUpperId(String oldId, String newId);
    
    /**
     * @Description: 删除字典数据
     * @param typeId 类型ID
     * @param dicId 数据ID
     */
    public void deleteDictionary(String typeId, String dicId);
    
    /**
     * 根据类型及ID获取数据字典信息
     * @param type
     * @param id
     * @return
     */
    public Dictionary findByTypeID(String type, String id);
    
	/**
	 * 根据类型及上级ID获取字典数据列表
	 * @param type
	 * @param upperId
	 * @return
	 */
	public List<Dictionary> listDictionaryByTypeUpperId(String type, String upperId);
	
	/**
	 * 根据类型获取字典数据列表
	 * @param type
	 * @return
	 */
	public List<Dictionary> listDictionaryByType(String type);
	
	/**
	 * 根据类型获取字典数据列表（层级关系）
	 * @param entrytype
	 * @return
	 */
	public List<Map<String, Object>> listAllDicsByType(String type);
	
	/**
	 * 根据类型获取所有有子集字典的字典数据
	 * @param type
	 * @return
	 */
	public List<Dictionary> findAllUpperDicsByType(String type);

}
